package com.gzc.just.play.last.war.common.message;

import io.netty.channel.ChannelHandlerContext;

/**
 * 消息处理器接口
 * 
 * 注意：反序列化由统一的@MessageDeserializer注解类处理，
 * Handler只负责业务逻辑，不再包含反序列化逻辑
 */
public interface MessageHandler<T> {
    /**
     * 处理消息
     * @param message 消息对象（已反序列化）
     * @param ctx 通道上下文
     */
    void handle(T message, ChannelHandlerContext ctx);
    
    /**
     * 获取消息ID
     * @return 消息ID
     */
    int getMessageId();
    
    /**
     * 获取处理器名称
     * @return 处理器名称
     */
    String getName();
    
    /**
     * 获取日志记录器
     * @return 日志记录器
     */
    org.slf4j.Logger getLogger();
}